package com.unitd.modules.gen.dao;

import com.unitd.frame.mybatis.core.dao.ICrudDao;
import com.unitd.modules.gen.entity.GenTable;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @desc 业务表DAO接口
 * @filename GenTableDao.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date 2017-04-27
 */
public interface IGenTableDao extends ICrudDao<GenTable, String> {

	/**
	 * @desc 根据数据库表名(单个表名),获取该表对应的数据
	 * @param tableName 数据库表名(单个表名)
	 * @return 据库表对象
	 */
	GenTable findByTableName(@Param("tableName") String tableName);

	/**
	 * @desc 根据数据库表名(多个表名,用,进行分割),获取该表对应的数据
	 * @param tableNames 数据库表名(多个表名,用,进行分割
	 * @return 据库表对象
	 */
	List<GenTable> findByTableNames(@Param("tableNames") String tableNames);

	/**
	 * @desc 查询表列表
	 * @param genTable 需要生成代码的数据库表结构对象
	 * @return 据库表对象
	 */
	List<GenTable> findTableListFormDb(GenTable genTable);

	/**
	 * @desc 获取数据表主键
	 * @param genTable  需要生成代码的数据库表结构对象
	 * @return 数据表主键
	 */
	List<String> findTablePK(GenTable genTable);
}